<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>多重继承</title>
</head>
<body>
  
</body>
<script>
  // 多重继承：一个对象同时继承多个对象
  // Person   Parent    Me

  function Person(){
    this.name = 'Person';
  }
  Person.prototype.sayName = function(){
    console.log(this.name);
  }

  // 定制 Parent
  function Parent(){
    this.age = 18;
  }
  Parent.prototype.sayAge = function(){
    console.log(this.age);
  }

  function Me(){
    // 继承 Person和 Parent的属性
    Person.call(this);
    Parent.call(this);
  }
  // 继承Person的方法
  Me.prototype = Object.create(Person.prototype);
  // 不能重写原型对象来实现，对另一个对象的继承
  // Me.prototype = Object.create(Parent.prototype);

  // Object.assign(targetObj,copyObj)
  // 将Parent原型对象中的方法拷贝给Me的原型对象
  Object.assign(Me.prototype,Parent.prototype);


  // 指定构造函数
  Me.prototype.constructor = Me;

  var me = new Me();
  console.log(me.name);   //Person
  console.log(me.age);   //18
  me.sayName();   //Person
  me.sayAge();   //18



</script>
</html>